<%@page import="study.itwill.team5.admin.AdminItem"%>
<%@page import="study.itwill.jsp.WebHandler"%>
<%@page import="study.itwill.team5.house.RoomItem"%>
<%@page import="java.util.ArrayList"%>
<%@page import="study.itwill.common.PatternChecker"%>
<%@page import="study.itwill.team5.house.House"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ page session="true" %>
<%
   WebHandler web = new WebHandler(request, response, out);
   AdminItem loginInfo = (AdminItem)session.getAttribute("ADMIN_INFO");
   
   // 로그인 정보가 없을 경우 로그인 페이지로 이동
   if (loginInfo == null) {
      web.goPage("/Team-Project/login.jsp", "로그인이 필요합니다");
      return;
   }
%>
<%
	// 모든 파라미터 받기
	String name = request.getParameter("name");
	String address1 = request.getParameter("address1");
	String address2 = request.getParameter("address2");
	String address3 = request.getParameter("address");
	String address4 = request.getParameter("address4");
	String email = request.getParameter("email");
	String homepage = request.getParameter("homepage");
	String info = request.getParameter("info");
	String lat = request.getParameter("lat");
	String lon = request.getParameter("lng");
	String house_city_seq = request.getParameter("house_city_seq");
	String[] tel = request.getParameterValues("tel[]");
	String[] image = request.getParameterValues("image[]");
	String[] room_name = request.getParameterValues("room_name[]");
	String[] room_limitPerson = request.getParameterValues("room_limitPerson[]");
	String[] room_offPrice = request.getParameterValues("room_offPrice[]");
	String[] room_onPrice = request.getParameterValues("room_onPrice[]");
	
	/** 파라미터의 유효성 검사 */
	if(!PatternChecker.isValue(name)) {
		out.print("<script type='text/javascript'> alert('민박 이름 파라미터가 없습니다.'); history.back();</script>");
		return;
	}
	
	if(!PatternChecker.isValue(address1)) {
		out.print("<script type='text/javascript'> alert('국가 주소 파라미터가 없습니다.'); history.back();</script>");
		return;
	}

	if(!PatternChecker.isValue(address2)) {
		out.print("<script type='text/javascript'> alert('도시 주소 파라미터가 없습니다.'); history.back();</script>");
		return;
	}
	
	
	if(!PatternChecker.isValue(address3)) {
		out.print("<script type='text/javascript'> alert('상세 주소 파라미터가 없습니다.'); history.back();</script>");
		return;
	}
	
	if(!PatternChecker.isValue(address4)) {
		out.print("<script type='text/javascript'> alert('관광명소 근처 주소 파라미터가 없습니다.'); history.back();</script>");
		return;
	}
	
	if(!PatternChecker.isValue(email)) {
		out.print("<script type='text/javascript'> alert('이메일 파라미터가 없습니다.'); history.back();</script>");
		return;
	}
	
	if(!PatternChecker.isValue(homepage)) {
		out.print("<script type='text/javascript'> alert('홈페이지 파라미터가 없습니다.'); history.back();</script>");
		return;
	}
	
	if(!PatternChecker.isValue(info)) {
		out.print("<script type='text/javascript'> alert('정보 파라미터가 없습니다.'); history.back();</script>");
		return;
	}
	
	if(!PatternChecker.isValue(lat)) {
		out.print("<script type='text/javascript'> alert('위도 파라미터가 없습니다.'); history.back();</script>");
		return;
	}
	
	if(!PatternChecker.isValue(lon)) {
		out.print("<script type='text/javascript'> alert('경도 파라미터가 없습니다.'); history.back();</script>");
		return;
	}
	
	if(!PatternChecker.isValue(house_city_seq)) {
		out.print("<script type='text/javascript'> alert('민박 파라미터가 없습니다.'); history.back();</script>");
		return;
	}
	
	if(!PatternChecker.isNum(house_city_seq)) {
		out.print("<script type='text/javascript'> alert('민박 파라미터가 부정확 합니다.'); history.back();</script>");
		return;
	}
	
	// 한글 깨짐 디코딩
	name = new String(name.getBytes("ISO-8859-1"), "UTF-8");
	address1 = new String(address1.getBytes("ISO-8859-1"), "UTF-8");
	address2 = new String(address2.getBytes("ISO-8859-1"), "UTF-8");
	address3 = new String(address3.getBytes("ISO-8859-1"), "UTF-8");
	address4 = new String(address4.getBytes("ISO-8859-1"), "UTF-8");
	info = new String(info.getBytes("ISO-8859-1"), "UTF-8");
	info = info.replace("\n", "<br />");
	
	// 숫자 파라미터에 대한 형변환 (숫자로 입력되야 할 값들은 형변환 헤줘야 한다.!!!!)
	int n_house_city_seq = Integer.parseInt(house_city_seq);
	double n_lat = Double.parseDouble(lat);
	double n_lon = Double.parseDouble(lon);
	
	// 룸이름 인코딩
	for(int i=0; i<room_name.length; i++) {
		room_name[i] = new String(room_name[i].getBytes("ISO-8859-1"), "UTF-8");
	}
	// 최대인원 형변환
	int[] n_room_limitPerson = new int[room_limitPerson.length];
	for (int i=0; i<room_limitPerson.length; i++) {
		 n_room_limitPerson[i] = Integer.parseInt(room_limitPerson[i]);
	}
	// 비수기 가격 형변환
	int[] n_room_offPrice = new int[room_offPrice.length];
	for(int i=0; i<room_offPrice.length; i++) {
		n_room_offPrice[i] = Integer.parseInt(room_offPrice[i]);
	}
	// 성수기 가격 형변환
	int[] n_room_onPrice = new int[room_onPrice.length];
	for(int i=0; i<room_onPrice.length; i++) {
		n_room_onPrice[i] = Integer.parseInt(room_onPrice[i]);
	}
	
%>
<%@ include file="../dbcon.jsp"%>
<%

	//RoomItem item = new RoomItem(new String(room[0].getBytes("ISO-8859-1"), "UTF-8"), Integer.parseInt(room[1]), 
	//		Integer.parseInt(room[2]), Integer.parseInt(room[3]));
	//ArrayList<RoomItem> room_item = new ArrayList<RoomItem>();
	//room_item.add(item);
	
	ArrayList<RoomItem> room_item = new ArrayList<RoomItem>();
	for(int i=0; i<room_name.length; i++) {
		RoomItem item = new RoomItem(room_name[i], n_room_limitPerson[i], n_room_offPrice[i], n_room_onPrice[i]);
		room_item.add(item);
	}
			
	
	/** 데이터 저장 */
	House house = new House();
	int seq = house.addHouse(name, address1, address2, address3, address4, email, 
			homepage, info, n_lat, n_lon, n_house_city_seq, tel, image, room_item);

	/** 접속 해제 */
	DBHandler.disconnect();
	
	// 페이지 강제 이동 (JSP)
	response.sendRedirect("viewHouse.jsp?seq=" + seq + "&city=" + n_house_city_seq);
%>









